#pragma once
#include "IGameState.h"
#include "stdafx.h"

/**************************************************************/
// OptionsState class
//	- handles the Options menu
//	- SINGLETON (statically allocated, not dynamic)
class OptionsState : public IGameState
{
public:
	/**********************************************************/
	// Singleton Accessor
	static OptionsState* GetInstance(void);


	/**********************************************************/
	// IGameState Interface:
	virtual void	Enter(void)				override;	// load resources
	virtual void	Exit(void)				override;	// unload resources

	virtual bool	Input(void)				override;	// handle user input
	virtual void	Update(float elapsedTime)	override;	// update entites
	virtual void	Render(void)				override;	// render entities / menu


protected:
	/**********************************************************/
	// SINGLETON!
	OptionsState(void) = default;
	virtual ~OptionsState(void) = default;

	OptionsState(const OptionsState&) = delete;
	OptionsState& operator= (const OptionsState&) = delete;


	/**********************************************************/
	// Cursor Index
	int		m_nCursor = 0;
	//Audio Handles for Volume Control
	SGD::HAudio		m_AOptionsVolume = SGD::INVALID_HANDLE;
	SGD::HAudio		m_AOptionsVolume2 = SGD::INVALID_HANDLE;
	SGD::HTexture	m_hOptionsBar = SGD::INVALID_HANDLE;
	SGD::AudioManager* pAudio = SGD::AudioManager::GetInstance();
	Game* theGame = Game::GetInstance();

};

